package com.github.cakin.shiro.chapter8.web.filter;

import org.apache.shiro.web.filter.AccessControlFilter;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * @className: MyAccessControlFilter
 * @description: 自定义AccessControlFilter
 * @date: 2020/5/21
 * @author: cakin
 */
public class MyAccessControlFilter extends AccessControlFilter {
    /**
     * 功能描述：是否允许访问，返回 true 表示允许；
     *
     * @author cakin
     * @date 2020/5/21
     * @param request 请求
     * @param response 响应
     * @param mappedValue 参数值
     * @return boolean
     */
    @Override
    protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
        System.out.println("access allowed");
        return true;
    }
    /**
     * 功能描述：表示访问拒绝时是否自己处理，
     *          如果返回 true 表示自己不处理且继续拦截器链执行，返回 false 表示自己已经处理了（比如重定向到另一个页面）
     *
     * @author cakin
     * @date 2020/5/21
     * @param request 请求
     * @param response 响应
     * @return boolean
     */
    @Override
    protected boolean onAccessDenied(ServletRequest request, ServletResponse response) {
        System.out.println("访问拒绝也不自己处理，继续拦截器链的执行");
        return true;
    }
}
